gtk-demo: Visual improvement to solitaire
authorMatthias Clasen <mclasen@redhat.com>
Wed, 12 Aug 2020 03:03:31 +0000 (23:03 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 12 Aug 2020 03:10:48 +0000 (23:10 -0400)
Make the fields visible.

demos/gtk-demo/peg_solitaire.c

index 379a336e4727af6c74124ae5aae8373894d92609..1f5dfa30d8b6bfc18ae8e6d56245abf554f14c6e 100644 (file)
@@ -334,6 +334,14 @@ create_board (GtkWidget *window)
   int x, y;
   GtkDragSource *source;
   GtkDropTarget *target;
+  GtkCssProvider *provider;
+  const char css[] =
+    ".solitaire-field {"
+    "  border: 1px solid lightgray;"
+    "}";
+
+  provider = gtk_css_provider_new ();
+  gtk_css_provider_load_from_data (provider, css, -1);
 
   grid = gtk_grid_new ();
   gtk_widget_set_halign (grid, GTK_ALIGN_CENTER);
@@ -352,6 +360,10 @@ create_board (GtkWidget *window)
             continue;
 
           image = gtk_image_new ();
+          gtk_style_context_add_provider (gtk_widget_get_style_context (image),
+                                          GTK_STYLE_PROVIDER (provider),
+                                          800);
+          gtk_widget_add_css_class (image, "solitaire-field");
           gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
           if (x != 3 || y != 3)
             {
@@ -393,6 +405,8 @@ create_board (GtkWidget *window)
           gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (target));
         }
     }
+
+  g_object_unref (provider);
 }
 
 static void